# [1,2,3,4,5]  StopIteration自动处理 --不再调用next()
from collections.abc import Iterable,Iterator
li = [1,2,3,4,5,6,7,8]
# print(isinstance(li,Iterable))  # 可迭代对象
# print(isinstance(li,Iterator))  # 迭代器
# liItor = iter(li)  # 1.通过iter()方法把可迭代对象转换成迭代器
# # 2.不断的调用next()
# print(next(liItor))  # next()一次就拿到一个元素
# print(next(liItor))
# print(next(liItor))
# print(next(liItor))
# print(next(liItor))
# print(next(liItor)) # 没有元素的时候报错：StopIteration
# 3.自动的捕获异常


liItor = iter(li) # 1：转换成迭代器
while True:
    try:
        print(next(liItor))  # 2：不断的调用next()
    except StopIteration:  # 3：当捕获到StopIteration异常退出这个循环
        break
